#include <iostream>
#include <vector>
#include <algorithm>
#include <unordered_map>
using namespace std;

int main() {

	int n,m;
	cin>>n>>m;
	unordered_map<char,int> has;
	has['l']=4,has['o']=3,has['v']=2,has['e']=1;
	vector<string> vecMap(n+1);	
	vector<vector<int>> vecDp(n+1,vector<int>(m+1));
	for(int i=1;i<=n;++i){
		cin>>vecMap[i];
		vecMap[i]=' '+vecMap[i];
	}
	int nRet=0;
	for(int i=1;i<static_cast<int>(vecMap.size());++i){
		for(int j=1;j<static_cast<int>(vecMap.size());++j){
			int nFlg=has[vecMap[i][j]];
			vecDp[i][j]=max(vecDp[i-1][j],vecDp[i][j-1])+nFlg;
			nRet=max(nRet,vecDp[i][j]);
		}
	}
	cout<<nRet;
	
	return 0;
}
